There are a number of different control interfaces that may be used to provide input to a computer program. Examples of such interfaces include well-known interfaces such as a computer keyboard, mouse or joystick controller. Such interfaces typically have analog or digital switches that provide electrical signals that can be mapped to specific commands or input signals that affect the execution of a computer program.
Recently, interfaces have been developed for use in conjunction with video games that rely on other types of input. There are interfaces based on microphones or microphone arrays, interfaces based on cameras or camera arrays. Microphone-based systems are used for speech recognition systems that try to supplant keyboard inputs with spoken inputs. Microphone array based systems can track sources of sounds as well as interpret the sounds. Camera based interfaces attempt to replace joystick inputs with gestures and movements of a user or an object held by a user.
Different interfaces have different advantages and drawbacks. Keyboard interfaces are good for entering text but less useful for entering directional commands. Joysticks and mice are good for entering directional commands and less useful for entering text. Camera-based interfaces are good for tracking objects in two-dimensions but generally require some form of augmentation (e.g., use of two cameras or a single camera with echo-location) to track objects in three dimensions. Such augmentation can increase the cost of a camera-based system.
It would be desirable to provide an interface that is intuitive to use and is also relatively inexpensive to implement.
It is within this context that embodiments of the present invention arise.